import * as contants from './constants'
import {fromJS} from "immutable";

const defaultState=fromJS({
    focused:false,
    list:[],
    mouseIn:false,
    page:1,
    totalPage:1,

})
// immutable.js ----facebook开发
//先引用 fromJS  将defaultState变成 immutable对象  。调用immutable 的 get set方法


export default (state=defaultState,action)=>{
    //immutablede set方法 会结合之前immutable对象的值和设置的值，返回一个新的对象
    //总之：不会改变state里的值
    switch (action.type) {
        case contants.SEARCH_FOCUS:
            return state.set('focused',true);
        case contants.SEARCH_BlUR:
            return state.set('focused',false);
        case contants.CHANGE_LIST:
            //注意：此时 list已经转换为 immutable对象，而action.data还是普通对象。此时会报错
            // 解决：将普通对象转换你为immutable对象
            return state.merge({
                list:action.data,
                totalPage:action.totalPage
            })
            // return state.set('list',action.data).set('totalPage',action.totalPage)
        case contants.MOUSE_ENTER:
            return state.set('mouseIn',true);
        case contants.MOUSE_LEAVE:
            return state.set('mouseIn',false);
        case contants.CHANGE_PAGE:
            return state.set('page',action.page);
        default:
            return state;
    }
}
